package com.gitee.wsl.compose.modifier.style.shimmer

import androidx.annotation.FloatRange


/**
 * Defines the appearance and the behavior for [shimmer]s.
 *
 * You can define new theme and apply it via [ShimmerThemeAmbient].
 */
/*data class ShimmerTheme(
    *//**
     * Defines the current [ShimmerEffect] implementation.
     *//*
    val factory: ShimmerEffectFactory,
    *//**
     * The alpha for unhighlighted section
     *//*
    @FloatRange(from = 0.0, to = 1.0)
    val baseAlpha: Float,
    *//**
     * The alpha for highlighted section
     *//*
    @FloatRange(from = 0.0, to = 1.0)
    val highlightAlpha: Float,
    *//**
     * The direction of [shimmer] effect
     *//*
    val direction: ShimmerDirection,
    *//**
     * Controls the size of the fading edge of the highlight.
     *//*
    @FloatRange(from = 0.0, to = 1.0)
    val dropOff: Float,
    *//**
     * Controls the brightness of the highlight at the center
     *//*
    @FloatRange(from = 0.0, to = 1.0)
    val intensity: Float,
    *//**
     * Angle in degrees at which the [shimmer] is tilted
     *//*
    val tilt: Float
) {
    init {
        require(baseAlpha in 0f..1f) { "baseAlpha should be between 0f and 1f but it's $baseAlpha" }

        require(highlightAlpha in 0f..1f) { "highlightAlpha should be between 0f and 1f but it's $highlightAlpha" }

        require(dropOff in 0f..1f) { "dropOff should be between 0f and 1f but it's $dropOff" }

        require(intensity in 0f..1f) { "intensity should be between 0f and 1f but it's $intensity" }
    }
}*/

/**
 * Ambient used for providing [ShimmerThemeProvider] down the tree.
 */
/*
val ShimmerThemeProvider = ambientOf { defaultShimmerTheme }

private val defaultShimmerTheme = ShimmerTheme(
    factory = DefaultLinearShimmerEffectFactory,
    baseAlpha = 0.2f,
    highlightAlpha = 0.9f,
    direction = ShimmerDirection.TopToBottom,
    dropOff = 0.5f,
    intensity = 0f,
    tilt = 0f
)
*/
